package reflect.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @Target()
 * 元注解：
 * 1.ElementType.TYPE：类
 * 2.ElementType.FIELD：属性
 * 3.ElementType.METHOD：方法
 * 4.ElementType.CONSTRUCTOR：构造器
 * 5.ElementType.PARAMETER：参数
 * 6.ElementType.LOCAL_VARIABLE：局部变量
 * 7.ElementType.ANNOTATION_TYPE：注解
 * 8.ElementType.PACKAGE：包
 * 9.ElementType.TYPE_PARAMETER：类型参数
 * 10.ElementType.TYPE_USE：类型使用
 *
 *
 * 如果元注解没有指定ElementType，那么默认只能用于类上
 * @Retention(RetentionPolicy.RUNTIME)
 * 只有加入@Retention(RetentionPolicy.RUNTIME)注解的注解，才能被反射机制读取到
 */

@Target({ElementType.TYPE,ElementType.FIELD,ElementType.CONSTRUCTOR,ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoRunClass {

}
